package listbyorder.access001_100.test14;

/**
 * 最长公共前缀
 * @author code_yc
 * @version 1.0
 * @date 2020/5/26 23:58
 */
public class Solution1 {

    // 垂直比较
    // 自己的解法
    // 1 循环比较数组中的前n个字符，
    // 2 检查是否都相等，如果不相等，或者当前索引超出字符串的长度，则跳出循环
    // 3 如果一轮遍历下去，没有跳出循环，则将当前的字符加入结果中
    public String longestCommonPrefix(String[] strs) {
        String res = "";
        if (strs == null || strs.length == 0) return res;
        int index = 0;
        char cur;
        char pre;
        boolean flag = true;
        while (true) {
            if (strs[0].length() <= index) {
                break;
            }
            pre = strs[0].charAt(index);
            for (int i = 1; i < strs.length; i++) {
                if (index >= strs[i].length()) {
                    // 当前的索引针对当前的字符串越界了
                    flag = false;
                    break;
                }
                cur = strs[i].charAt(index);
                if (pre != cur) {
                    flag = false;
                    break;
                }
            }
            if (!flag) {
                break;
            }
            index++;
            res += pre;
        }
        return res;
    }
}
